perm filename L70MAN.PUB[L70,TES] blob sn#039432 filedate 1973-04-27 generic text, type T, neo UTF8
00100	.COMMENT LISP70 MANUAL FIRST DRAFT ;
00200	.NOJUST
00300	.BEGIN CENTER
00400	.GROUP SKIP 10 ; TURN ON "{" ;
00500	LISP70 MANUAL
00600	
00700	STANFORD LISP1.6 USERS VERSION (PDP10)
00800	
00900	FIRST DRAFT
01200	.SKIP 8
01300	.require "pubmac.nun[2,TES]" source_file
01400	.standard front("I", "!.A")
01500	.COUNT PAGE
01600	.every footing(,{PAGE},)
01700	.EVERY HEADING(,{DATE},LISP70)
     

00100	.SEC INTRODUCTION
00200	.SS LISP71 AND LISP72
00300	LISP70 is an extensible and portable programming
00400	language based on LISP.  It is used to define languages
00500	tailored to special applications and to tailor
00600	their implementations to particular system environments.
00700	
00800	The first language implemented using LISP70 is called LISP71.
00900	It is largely compatible with LISP1.6.  That is, a program
01000	written in LISP1.6 or in its MLISP will be processed by LISP71
01100	after minimal changes.  Notable exceptions to compatability
01200	are machine-coded functions, Alvine, and
01300	implementation-dependent conventions such as SPECIAL
01400	declarations.
01500	
01600	The second language implemented using LISP70 is called LISP72.
01700	It is a block-structured Algol-like language that has LISP71 as a subset
01800	except for those features that were included in LISP71 as
01900	concessions to LISP1.6 compatability.  For example, in LISP71,
02000	a property list is a list, but in LISP72 it is a hash table.
02100	
02200	The reason LISP71 has been provided is so that LISP1.6
02300	users can immediately take advantage of some of LISP70's
02400	advantages with minimal reprogramming.  It also
02500	provides a sytem that is comparable with LISP1.6 to make
02600	performance tests.  Users are encouraged to switch to
02700	LISP72 as soon as compatability ceases to be an issue.
02800	
02900	.SS USING LISP71
03000	
03100	.SS USING LISP72
03200	
     

00100	.SEC BLOCK STRUCTURE IN LISP72
00200	.SS DENOTATION
00300	
00400	>SS BINDING
00500	
00600	.SS DECLARATIONS
00700	
00800	.SS EXPRESSIONS
00900	
     

00100	.SEC FREE VARIABLES IN LISP71
00200	.SS DENOTATION
00300	
00400	.SS BINDING
00500	
00600	.SS PUBLIC DECLARATIONS
00700	
00800	.SS FREE OCCURRENCES
00900	
     

00100	.SEC DATA TYPES IN LISP72
00200	.SS RECORDS AND FIELDS
00300	
00400	.SS LISTS, CAR, CDR